Linux Tricks: Difference between revisions
(8 intermediate revisions by the same user not shown) | |||
Line 13: | Line 13: | ||
=== Creating service in systemd (RHEL7 and up) === | === Creating service in systemd (RHEL7 and up) === | ||
'''NOTES:''' | |||
systemctl list-units | grep -o '.*\.mount' | |||
'''DiagGuiServer example''' | '''DiagGuiServer example''' | ||
Line 21: | Line 28: | ||
Description=DiagGuiServer | Description=DiagGuiServer | ||
#After=network.target | #After=network.target | ||
#Requires=autofs.service | |||
#Requires=nfs-utils.service nfs-lock.service autofs.service | |||
#Requires=autofs.service | |||
#After=network.target apps.mount home.mount usr-clas12.mount usr-local.mount | |||
#After=-.mount | |||
#RequiresMountsFor=/usr/clas12/release/1.4.0/coda/Linux_x86_64/bin | |||
#Wants=remote-fs.target | |||
#After=remote-fs.target | |||
#ConditionPathExists=/usr/clas12/release/1.4.0/coda/Linux_x86_64/bin | |||
[Service] | [Service] | ||
Type=simple | Type=simple | ||
#ExecStartPre=/usr/bin/test ! -f /usr/clas12/release/1.4.0/coda/Linux_x86_64/bin | |||
#RestartSec=10 | #RestartSec=10 | ||
User=clasrun | User=clasrun | ||
Group=onliners | Group=onliners | ||
#EnvironmentFile=/home/clasrun/systemdenv | #EnvironmentFile=/home/clasrun/systemdenv | ||
#Environment="LD_LIBRARY_PATH=/usr/clas12/release/1.4.0/coda/Linux_armv7l/lib:/usr/local/activemq/lib" "SESSION=clasprod" "EXPID=clasrun" "IPC_HOST=clon00" "CLON_PARMS=/usr/clas12/release/1.4.0/parms" "MYSQL_HOST=clondb1" | |||
#ExecStart=/usr/clas12/release/1.4.0/coda/src/rol/Linux_x86_64/bin/DiagGuiServer | #ExecStart=/usr/clas12/release/1.4.0/coda/src/rol/Linux_x86_64/bin/DiagGuiServer | ||
ExecStart=/usr/clas12/release/1.4.0/coda/Linux_x86_64/bin/DiagGuiServer init | ExecStart=/usr/clas12/release/1.4.0/coda/Linux_x86_64/bin/DiagGuiServer init | ||
Restart=on-failure | |||
RestartSec=10 | |||
[Install] | |||
WantedBy=multi-user.target | |||
#WantedBy=default.target | |||
ln -s /usr/lib/systemd/system/DiagGuiServer.service /etc/systemd/system/DiagGuiServer.service | ## ??? | ||
##Create symbolic link: | |||
## ln -s /usr/lib/systemd/system/DiagGuiServer.service /etc/systemd/system/DiagGuiServer.service | |||
Create directory ''/etc/systemd/system/DiagGuiServer.service.d/'' | Create directory ''/etc/systemd/system/DiagGuiServer.service.d/'' | ||
Create file ''/etc/systemd/system/DiagGuiServer.service.d/override.conf'' with following contents: | Create file ''/etc/systemd/system/DiagGuiServer.service.d/override.conf'' with following contents: | ||
Line 58: | Line 80: | ||
systemctl enable DiagGuiServer | systemctl enable DiagGuiServer | ||
following message should come up on screen: | |||
Created symlink from /etc/systemd/system/default.target.wants/DiagGuiServer.service to /usr/lib/systemd/system/DiagGuiServer.service. |
Latest revision as of 15:10, 7 April 2025
Color change when connected remotely
Problem: after opening vnc session to linux machine from macbook laptop, small window pops up asking about some color settings (create color profile etc), and keeps asking for password; none of passwords actually works, and it keeps asking again and again.
Fix: on linux machine, create file /etc/polkit-1/localauthority/50-local.d/45-allow-colord.pkla with permissions 644 and following contents:
[Allow Colord all Users] Identity=unix-user:* Action=org.freedesktop.color-manager.create-device;org.freedesktop.color-manager.create-profile;org.freedesktop.color-manager.delete-device;org.freedesktop.color-manager.delete-profile;org.freedesktop.color-manager.modify-device;org.freedesktop.color-manager.modify-profile ResultAny=no ResultInactive=no ResultActive=yes
Creating service in systemd (RHEL7 and up)
NOTES:
systemctl list-units | grep -o '.*\.mount'
DiagGuiServer example
Create file /usr/lib/systemd/system/DiagGuiServer.service with following contents:
[Unit] Description=DiagGuiServer #After=network.target #Requires=autofs.service #Requires=nfs-utils.service nfs-lock.service autofs.service #Requires=autofs.service #After=network.target apps.mount home.mount usr-clas12.mount usr-local.mount #After=-.mount #RequiresMountsFor=/usr/clas12/release/1.4.0/coda/Linux_x86_64/bin #Wants=remote-fs.target #After=remote-fs.target #ConditionPathExists=/usr/clas12/release/1.4.0/coda/Linux_x86_64/bin
[Service] Type=simple #ExecStartPre=/usr/bin/test ! -f /usr/clas12/release/1.4.0/coda/Linux_x86_64/bin #RestartSec=10 User=clasrun Group=onliners #EnvironmentFile=/home/clasrun/systemdenv #Environment="LD_LIBRARY_PATH=/usr/clas12/release/1.4.0/coda/Linux_armv7l/lib:/usr/local/activemq/lib" "SESSION=clasprod" "EXPID=clasrun" "IPC_HOST=clon00" "CLON_PARMS=/usr/clas12/release/1.4.0/parms" "MYSQL_HOST=clondb1" #ExecStart=/usr/clas12/release/1.4.0/coda/src/rol/Linux_x86_64/bin/DiagGuiServer ExecStart=/usr/clas12/release/1.4.0/coda/Linux_x86_64/bin/DiagGuiServer init Restart=on-failure RestartSec=10
[Install] WantedBy=multi-user.target #WantedBy=default.target
## ??? ##Create symbolic link: ## ln -s /usr/lib/systemd/system/DiagGuiServer.service /etc/systemd/system/DiagGuiServer.service
Create directory /etc/systemd/system/DiagGuiServer.service.d/
Create file /etc/systemd/system/DiagGuiServer.service.d/override.conf with following contents:
[Service] Environment="LD_LIBRARY_PATH=/apps/gcc/8.3.0/lib:/apps/gcc/8.3.0/lib64:/usr/lib:/usr/local/lib:/usr/local/activemq/lib:/usr/clas12/release/1.4.0/coda/Linux_x86_64/lib:/usr/clas12/release/1.4.0/clon/Linux_x86_64/lib:/usr/clas12/release/1.4.0/clon/lib" Environment="IPC_HOST=clon00" Environment="MYSQL_HOST=clondb1" Environment="EXPID=clasrun" Environment="CLON_PARMS=/usr/clas12/release/1.4.0/parms"
Following commands can be used to control service:
systemctl start DiagGuiServer systemctl stop DiagGuiServer systemctl status DiagGuiServer
To start service at boot time, execute command:
systemctl enable DiagGuiServer
following message should come up on screen:
Created symlink from /etc/systemd/system/default.target.wants/DiagGuiServer.service to /usr/lib/systemd/system/DiagGuiServer.service.