Newly Setting up a CentOS-7 system
yum install -y epel-release glibc.i686 libtools vim clang git autoconf automake w3m glibc screen
the most import sentence I learned in meeting compiling prerequisites:
yum whatprovides */libcap* | grep dev
in *nix systems, the concept of runlevel is always met, and some softwares needs to do some changes in the relative folders.. /etc/rc3.d/..
here are some quotes from askubuntu..:
<QUOTE>{
To see the current (and previous) runlevel:
runlevel
To switch runlevels:
sudo init $runlevel
For example, to reboot:
sudo init 6
The init you are reading about was replaced by upstart starting with Edgy Eft 6.10; and, one of the programs provided by upstart is its own implementation of init. Here are the docs for 10.04.
To change the default runlevel, use your favorite text editor on /etc/init/rc-sysinit.conf...
sudo vim /etc/init/rc-sysinit.conf
Change this line to whichever runlevel you want...
env DEFAULT_RUNLEVEL=2
Then, at each boot, upstart will use that runlevel.
}</QUOTE>
and note that the default runlevel of systems is 3 usually..
some init files..
~/.profile /etc/profile ~/.xprofile : things to do when login in graphical mode, /etc/profile is for all users
~/.bash_profile :things to do when login as personal user in bash/sh/rxvt/urxvt.
~/.bashrc : things to do when opening new bash/sh/rxvt/urxvt, open ssh, scp, sudo
~/.xinitrc : things to do when starting x server
~/.i3/config : things to do when starting i3
----orignal file above-- here are contents updated Sept. 26, 2017----
to start something while startup have several ways, one is to add a service at path /usr/lib/systemd/system/
a service file usually seems like:
[Unit] Description=... Documentation=man:..(id) man:..(id) After= Wants= [Service] Type= PIDFile= EnvironmentFile ExecStart= ExecReload= KillMode= Restart=on-failure RestartSec= [Install] WantedBy=
to know more about the [Service] part of a service file, see man systemd.service. Other parts contains: man systemd.unit, man systemd.exec, man systemd.kill, man systemd.resource-control
some interesting [Service] settings:
Type, here specifies type of the service. Choices can be one of: simple, forking, oneshot, notify, dbus, idle.
quote from here, types have the following meaning:
Type=simple(default): systemd considers the service to be started up immediately. The process must not fork. Do not use this type if other services need to be ordered on this service, unless it is socket activated.Type=forking: systemd considers the service started up once the process forks and the parent has exited. For classic daemons use this type unless you know that it is not necessary. You should specifyPIDFile=as well so systemd can keep track of the main process.Type=oneshot: this is useful for scripts that do a single job and then exit. You may want to setRemainAfterExit=yesas well so that systemd still considers the service as active after the process has exited.Type=notify: identical toType=simple, but with the stipulation that the daemon will send a signal to systemd when it is ready. The reference implementation for this notification is provided by libsystemd-daemon.so.Type=dbus: the service is considered ready when the specifiedBusNameappears on DBus's system bus.Type=idle: systemd will delay execution of the service binary until all jobs are dispatched. Other than that behavior is very similar toType=simple.
ExecStart, ExecStop (either one should be specified, or the service file is illegal) is executable is prefixed with '-', then an exit code of command usually is considered as failure is ignored and considered success. If prefixed with '+', then it is executed with full privilege. If file prefixed with '@', then second token be passed as argv[0] to process. All the three prefixes can be used together.
ExecStartPre, ExecStartPost (any of the above commands fails, the service is stopped heresince and considered a failure, and continues with commands specified in ExecStopPost. ExecStop commands will also be skipped. (It is not started)
ExecStop, this command should be one that synchronously stops the process running.
RuntimeMaxSec, WatchdogSec(this should be used together with Type=Notify, NotifyAccess=main/all/.., otherwise it is defaults to 0/forever)
Restart, on-success, on-failure, no, on-abnormal, on-watchdog, on-abort, always.
RestartSec, specifies the seconds that waits before restart the service.

Some [Unit] settings:
Wants, Requires, Requisite, BindsTo: services Requires will be started as well when this service is started(list order is of-no-importance when being started), however, if services Requisite not running while starting this service, the start process will be failed. Wants services will also be started when this service starts, but this service will not be failed immediately when wanted services fails. When BindsTo services stopped, this service will be stopped also.
PartOf: when the specified services being started, this service will also be started, similar to Requires
Before, After, this service is before/after the mentioned services when being started, and also when stops, the inverse ordering is applied
OnFailure, services to be run when fails
ConditionArchitecture, ConditionVirtualization, ConditionHost, ConditionKernelCommandLine, ConditionPathExists, ConditionFileNotEmpty,
Some [Install] settings: the settings here be affecting systemctl enable commands
Alias,
WantedBy, RequiredBy, reverse form of Wants, Requires. But in order to take effect, this service should be enabled by systemctl enable and thus symlinks is created in the wants folder.
some services can be started as multiple instances, these are services end up like "name@.service", when start an instance of such service, use systemctl start name@helloworld1.service, where the helloworld1 part is the name of the instance.. and can be reached inside the service file by using %i. Here are all the escapers listed in man systemd.unit..


Service variables:
$MAINPID, $SERVICE_RESULT, $EXIT_CODE, $EXIT_STATUS
浙公网安备 33010602011771号